package co.com.ticci.mb;

import java.util.ArrayList;

import javax.faces.event.ActionEvent;
import javax.faces.event.AjaxBehaviorEvent;

import org.primefaces.component.datatable.DataTable;

import co.com.autolavado.ln.AutolavadoLn;
import co.com.ticci.autolavado.vo.TicciAutolavado;
import co.com.ticci.autolavado.vo.TicciAutolavadoPK;
import co.com.ticci.autolavado.vo.TicciEmpresa;
import co.com.ticci.mb.general.Crud;
import co.com.ticci.mb.general.GeneralMB;

public class AutolavadoMB extends GeneralMB
{
	private AutolavadoLn	autolavadoLn;
	private TicciEmpresa	autolavadoSeleccionada;
	private DataTable		tableAutolavado;
	
	public AutolavadoMB()
	{
		autolavadoLn = new AutolavadoLn();
	}
	
	public void seleccionarEmpresa(AjaxBehaviorEvent evento)
	{
		autolavadoSeleccionada = (TicciEmpresa) tableAutolavado.getRowData();
	}

	@Override
	public void insertar(ActionEvent event) 
	{
		TicciAutolavado 	autolavado 		= new TicciAutolavado();
		TicciAutolavadoPK	autolavadoPK	= new TicciAutolavadoPK();
		
		autolavadoPK.setAutoCons(-1);
		autolavadoPK.setEmprCons((int) to.getEmprCons());	
		autolavado.setId(autolavadoPK);
		autolavado.setAutoEstado(true);
		
		crud.agregarElemento(autolavado);
	}
	
	public void borrar(ActionEvent event) 
	{
		crud.eliminarElemento(autolavadoSeleccionada);
	}
	
	public void grabar(ActionEvent event) 
	{
		
		ArrayList<ArrayList<? extends Object>> resultadoCrud = crud.getResultadosCrud();
		ArrayList<TicciAutolavado> insertables                  = (ArrayList<TicciAutolavado>) resultadoCrud.get(1);
		
		if(crud.existenCambios())
		{
			int                    ultimoConsecutivo             = autolavadoLn.getUltimoConsAutolavado(to.getEmprCons());
			
			for (TicciAutolavado ticciAutolavado : insertables) {
				
				ticciAutolavado.getId().setAutoCons(ultimoConsecutivo);
				ultimoConsecutivo++;
			}
			
			crud.guardarCambios();
		}
		
	}

	public DataTable getTableAutolavado() {
		return tableAutolavado;
	}

	public void setTableAutolavado(DataTable tableAutolavado) {
		this.tableAutolavado = tableAutolavado;
	}

}
